#include<iostream>
#include<fstream>
#include<stdio.h>

using namespace std;
const int buf_size=25;
char sudoku[81];//the 9*9 board 
int i,j;

void print()
{
for(i=0;i<9;i++)
	{
	  if(i%3==0) cout<<"---------------------\n";
	  for(j=0;j<9;j++)
	    {
	      if(j%3==0) cout<<"|";
	      cout<<sudoku[i*9+j]<<" ";
	    }
	  cout<<endl;
	  }
}


int main()
{
  ifstream in("input.txt",ios::in);
  char buf[buf_size];
  char count[4];
  char n;
  int r,c;
  char*p,*q;
  
  for(i=0;i<81;i++)
    {
      if(in)
	in>>sudoku[i];
      else
	sudoku[i]='*';
    }
  while(fgets(buf,buf_size,stdin))
    {
      
      for(p=buf;*p!=':'&&(!isspace(*p));p++);
      if(*p==':')
	{
      	  if(*(p-1)!='1'||(p-buf)!=1)
	    {
	      print();
	    }
	  for(p=buf,q=count;*p!=':'&&(!isspace(*p));p++,q++){*q=*p;}
	  *q='\0';
	  cout<<buf;
	  continue;
	}
      else
	{
	  while(isspace(*p)) p++;
	  if(*p=='p')
	    {
	      r=*(p+1)-'0';
	      c=*(p+2)-'0';
	    }
	  else if(*p=='r')
	    {
	      r=*(p+1)-'0';
	      n=*(p+2);
	    }
	  else if(*p=='c')
	    {
	      c=*(p+1)-'0';
	      n=*(p+2);
	    }
	  for(;!isspace(*p);p++);
	  while(isspace(*p)) p++;
	  
	  if(*p=='p')
	    {
	      r=*(p+1)-'0';
	      c=*(p+2)-'0';
	    }
	  else if(*p=='r')
	    {
	      r=*(p+1)-'0';
	      n=*(p+2);
	    }
	  else if(*p=='c')
	    {
	      c=*(p+1)-'0';
	      n=*(p+2);
	    }
	  for(;!isspace(*p);p++);
	  while(isspace(*p)) p++;
	  if(*p=='p')
	    {
	      r=*(p+1)-'0';
	      c=*(p+2)-'0';
	    }
	  else if(*p=='r')
	    {
	      r=*(p+1)-'0';
	      n=*(p+2);
	    }
	  else if(*p=='c')
	    {
	      c=*(p+1)-'0';
	      n=*(p+2);
	    }
	}
      sudoku[r*9+c]=n;
    }
  print();
  //    cout<<count<<endl;
  return 0;
}
